=-------------=-------------======+#%%%%@@@@%@@@@@@%%%%%%####*****##%
=====---------------=--=-======+#%%%%%%%@@@@%%%@@@%%%%%%%%%%%%%%%%%%%
===========================++*#%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%
+===========++++++++++*****#####%%#####%@@%%%%%@@@%%%%%%%%%%%%%%%%%%%
++++++++++++********++***#############%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*+++*****************#**#*******######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***#**##***************#*****##**####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
****#########******##********++**####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*****+++*******#*#*********==++**##**#%%%%%%%%%%%%%#####%%%%%%%%%%%%%
*************####**********++*****########%%%%%%%####**++*%%%%%%%%%%%
******#########################*#####*################***+#%%%%%%%%%%
#**##########################################%%%%%%%%%##############%
%%%%%%%%%%%%%%%####%%%%%%%%%%%%%%%%%%%%%%%#####%%%%%%%%##############
%%%%%%%%%##%###################################**##%%%%###%%%%%%%%%%%
#####%##%%%%#######%%%%##%%%%%%%%%###%%%#######+=*######%%%%%%%%%%%%%
%%%%%%%%%%%########%%%%%%%%%%%%%%%%%%%#%%%%###*++%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%#####%##%%%%%%%%%%%%%%%%%*####*#%*%**+*%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%#%%%%%%###*+*%%%%%%%%%%%%%%%%%%%@
%%%%%%%#%%%%##%####%%%%%%%%%%%%%%%%%%%##***%#%#*#%%%%%%%%%%%%##%%%%%%
%%%%%%#%%%#########%%%%%%%%%%%%%%%%%%%%#****%%###*##%%%%%%%%%%%%###%%
%%%%%##############%%%%%%%%%%%%%%%%%%%%%%#***%%%%###%%#**%%%%%%%%%%%%
%%%################%%%%%%%%%%%%%%%%%%%%%%%#+*%%##*###%%%%%%%%%%%%%%%%
@%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@%%@@%%%@%%%%%##%%%%%%%@@%%%%%%%%%@